前篇『[GAS] GBC上運作的Hello world! 』討論到可以透過自訂 xcf檔案,手工掛載到 GAS的執行路徑下提供 WEB APP的作法。但繁複的手工肯定澆熄了不少熱情。
在Genero 3.X以後的版本,提供 WEB版的部署介面機制,連 xcf 的製作都可以省下來了 (複雜情況還是需要補上手調),可以減少許多工作量。
一個已經完成畫面檔(PER/4FD, 42f)、程式可執行檔(4GL, 42m, 42r)測試驗證的作業,可以很容易地放上網頁運作。
此處需要42r檔案,以便兼容後續的許多擴展。42r是一種紀錄程式中function坐落在哪個42m的半文字紀錄檔 (具有一半的binary code但還是可以透過全文檢索,看出重要想查的資料)。
簡易單個42m 打包為42r的做法 (如helloworld.42m要打包成 helloworld.42r)
fgl2p -o helloworld.42r helloworld.42m
複雜多個42m 打包為42r的作法 (如 hello.42m/world.42m 要打包成 helloworld.42r)
fgl2p -o helloworld.42r hello.42m world.42m
或
fgllink -o helloworld.42r hello.42m world.42m
fgl2p 與 fgllink都是提供連結的工具,差異點在 fgl2p會主動將 WSHelper.42m 這個延伸GWS模組放上,操作較為方便。
42r檔案內只有寫 42m模組(module)名稱,並不帶上42m檔案在哪個路徑。路徑資料會是 FGLLDPATH環境變數所提供。也就是說:fglrun執行的過程中,先讀取 42r理解到要調用的function存在於哪個42m,再回頭從 FGLLDPATH 提供的路徑清單,『逐一搜尋』該42m的位置。這也是為什麼 FGLLDPATH 區域內不可存在同名 function的主要原因。(無法讓 fgllink辨識到底要連結誰)
為了執行模組清晰,建議將要用到的 42m先放在相同路徑下 (否則要在 xcf中配置 FGLLDPATH這個 ENVIRONMENT_VARIABLE 較為麻煩,若這句說明不太清楚,請參考:[GAS] 啟動配置檔as.xcf設定詳解 )
將 hello world檔案放置在 test-gar 目錄下,例如:
可用 fglgar 指令進行打包
fglgar gar --application hello.42r
正常產出完成時,回應 Finished. 以上指令處理的是帶有畫面的 WEB Application
若是沒有畫面的 WEB Service,則請用下列指令
fglgar gar --service hello.42r
完成打包後,會 ** 以最後一層目錄為名,產出一個 gar 檔案 **,這個檔案就可作為快速部署用。
fglgar會協助在打包當下,產生 MANIFEST 說明檔案,以及 hello.42r 的 as.xcf格式配置檔案,共同放入gar中,若須要自行維護,則可以用 -s 的方式自行傳入。
打開前篇 [GIP] Genero守門員 -簡化版單點登入SSO配置與運行 從 demos.html 進入,可設定部署的 Deployment頁面:
登入後,會執行出下列介面
中間的 Genero Archives... 就是可以協助部署的Deployment頁面,點入後如下圖:
開始部署時,點選 Deploy後,會出現要求將 gar 檔上傳的畫面 (檔案打包完後可利用 sz/rz 或 ftp等工具自行抓取下來)
上傳完成後,可在下方看到 test-gar.gar 的檔案資訊,以及裡面的 hello.xcf 配置
此時上方的功能按鍵,可以看到 Enable / Secure 已亮起,表示若我們點下 Enable 後,就可完成部署使用
生效後,我們即可連上 http://server-ip:6394/ua/r/XCF名字 查看成果。(是否為 :6394或 wtopprd 要看選擇的是 standalone的執行port 6394 或是使用 fastcgidispatch的綁定路徑,請回頭看GAS as.xcf配置段落)
如果要調整應用程式的權限,則必須先進行 Disable 還原到 Inactive狀態 (也就是上上圖Enable燈亮起的狀態),此時才能點選 Secure 進行配置
點擊 Secure 後不要急著 Enable,還沒設定呢,接著使用右側的 Configure進行配置
查閱上述訊息,我們在
做這麼多當然是 Yes,確認後可回主要設定頁,可以看到 hello.xcf 的 secure已被勾選
重新 enable 後,在做一次執行,就可以看到被要求登入的畫面 (如下),而且該身分還要符合 Admin 才可以執行
透過這樣的方式,可以很容易將開發出來的檔案進行配置成 WEB Application的動作,並且授權給適當的人員使用。